home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
C64
/
T-TPUG Old Monthly Disks
/
(c)te.d64
/
patch.c
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2007-02-04
|
5KB
|
169 lines
10 REM DISK PATCH BY KEVIN ANDERSON
12 REM REVISION A.4 2/20/84
15 DIM B$(255),D$(255),K$(75):N$=CHR$(0)
16 FORI=1TO75:READK$(I):NEXT
17 FORI=0TO255:B$(I)=N$:D$(I)=N$:NEXT
18 POKE53280,15:POKE53281,15:PRINTCHR$(142);"[144]"
20 PRINT"[147][146] PATCH [146][144]"
30 PRINT" F1[146] READ A BLOCK INTO THE BUFFER"
35 PRINT" F2[146] PRINT THE BUFFER"
40 PRINT" F3[146] EDIT THE BUFFER"
45 PRINT" F4[146] COMPARE BUFFER WITH DISK"
50 PRINT" F5[146] WRITE THE BUFFER TO DISK"
55 PRINT" F6[146] CHECK DISK STATUS"
60 PRINT" F7[146] EXIT
70 [161]A$:[139][198](A$[170]N$)[179]133[176][198](A$[170]N$)[177]139[167]70
72 [145]([198](A$[170]N$)[171]132)[137] 200,500,2000,80,3000,5000,6000
80 [153]"* BYE *":[128]
200 [153]"LOAD READ BLOCK FROM DISK WAITSTOP":[153]:[153]
210 [133]"TRACK (1-35)";TR
222 [139]TR[177]35[176]TR[179]1[167][153]"ON";:[137]210
223 [139]TR[177]30[167]SM[178]16:[137]227
224 [139]TR[177]24[167]SM[178]17:[137]227
225 [139]TR[177]17[167]SM[178]18:[137]227
226 SM[178]20
227 [153]"SECTOR (0-";SM;"CMD)";:[133] SE
228 [139]SE[177]SM[176]SE[179]0[167][153]"ON";:[137]227
230 [159]15,8,15,"I0":[159]2,8,2,"#"
240 [152]15,"U1:"2;0;TR;SE:[152]15,"B-P:2,0"
270 [129]I[178]0[164]255:[161]#2,A$:B$(I)[178][200]((A$[170]N$),1):[130]
340 [160]2:[160]15
350 [137]20
500 P[178][171]100
510 [153]"LOAD EDIT BLOCK WAITSTOP"
520 [153]" F1WAIT LIST NEXT 16 VALUES"
530 [153]" F3WAIT LIST PREVIOUS 16 VALUS"
540 [153]" F5WAIT CHANGE A VALUE"
550 [153]" F7WAIT EXIT EDIT ROUTINE"
552 [153]:[153]"WORD# HEX DEC ASCII BASIC"
555 [137]650
560 [161]A$:[139]A$[178]""[167]560
570 [139]A$[178]"LET"[167][137]20
580 [139]A$[178]"INPUT"[167]P[178]P[170]16:[137]650
590 [139]A$[178]"DIM"[167]P[178]P[171]16:[137]650
600 [139]A$[178]"READ"[167]800:[143] CHANGE A VALUE
610 [137]560
650 [143] LIST 16 VALUES IN HEX DECIMAL ASCII
655 [139]P[179]0[167]P[178]0
656 [139]P[177]255[171]15[167]P[178]255[171]15
660 [153]""
670 [129]I[178]P[164]P[170]15
675 A$[178]B$(I)
685 N[178][198](A$):H%[178]N[173]16:L%[178]N[171]16[172]H%
687 H%[178]H%[170]48:L%[178]L%[170]48
690 H%[178]H%[171]7[172](H%[177]57):L%[178]L%[171]7[172](L%[177]57)
695 H$[178][199](H%)[170][199](L%)
696 [153]" ";
697 [153]"CMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
698 S[178]2:[139]I[179]100[167]S[178]3:[139]I[179]10[167]S[178]4
700 [153]I;[166]S);H$,[166]4);[198](A$),"'";
705 [139][198](A$)[177]31[175][198](A$)[179]91[167][153]A$;"'";
707 [139][198](A$)[179]32[176][198](A$)[177]90[167][153]" '";
708 [139][198](A$)[179]128[176][198](A$)[177]203[167][153]
709 [139][198](A$)[177]127[175][198](A$)[179]204[167][153][166]5);K$([198](A$)[171]127)
710 [130]I
720 [137]560
800 [153]"";
805 [153]" ":[153]"ON";
810 [133]"WORD #";WN
813 [139]WN[179]0[176]WN[177]255[167]800
815 [153]"ON ":[153]"ON";
820 [133]"ASCII, DECIMAL, OR HEX";MO$
822 [153]"ON ":[153]"ON";
825 NX[178][171]1000
830 [139][200](MO$,1)[178]"A"[167][133]"NEW CHARACTER";NC$:NX[178][198](NC$)
835 [139][200](MO$,1)[178]"D"[167][133]"NEW DECIMAL";NV:NX[178]NV
840 [139][200](MO$,1)[178]"H"[167][133]"NEW HEX";HX$
880 [139]NX[179][177][171]1000[167]1000:[143] INSERT NEW VALUE
890 [139][200](MO$,1)[179][177]"H"[167][153]"";:[137]815
895 [139][195](HX$)[178]1[167]HX$[178]"0"[170]HX$
900 H%[178][198](HX$)[171]48 :L%[178][198]([202](HX$,2,1))[171]48
910 [139]H%[177]9[167]H%[178]H%[171]7
920 [139]L%[177]9[167]L%[178]L%[171]7
930 NX[178]16[172]H%[170]L%
1000 [139]NX[179]0[176]NX[177]255[167][153]"OUT OF RANGE":[129]I[178]1[164]1000:[130]I:[137]510
1010 NN$[178][199](NX)
1020 B$(WN)[178]NN$
1200 [137]510
2000 [153]"LOAD WRITE BLOCK TO DISK WAITSTOP"
2010 [153]""
2020 [153]"";TR:[153]"ON";:[133]"TRACK ";TR
2030 [153]"";SE:[153]"ON";:[133]"SECTOR";SE
2040 [153]:[153]"TRACK";TR;" SECTOR";SE;" CORRECT";:[133] A$
2050 [139]A$[179][177]"Y"[167]2000
2060 [159]15,8,15:[159]2,8,2,"#"
2070 [152]15,"B-P:"5;0
2075 [152]15,"M-W:"[199](0)[199](5);1;B$(0)
2090 [129]I[178]1[164]255:[152]2,B$(I);:[130]I
2091 [152]15,"U2:"2;0;TR;SE
2099 [160]2:[160]15:[137]20
3000 [153]"LOAD PRINT BUFFER WAITSTOP"
3008 [153]"F1WAIT HEX"
3010 [153]"F3WAIT ASCII"
3011 [153]"F5WAIT DECIMAL"
3013 [161]A$:[139]A$[178]""[167]3013
3022 [159]4,4
3024 [152]4," ":[152]4," ":[152]4," "
3026 [152]4," TRACK";TR;" SECTOR";SE
3030 [152]4," "
3050 [129] I[178]0[164]240[169]16:[152]4,I;
3052 [139]I[179]10[167][152]4," ";
3053 [139]I[179]100[167][152]4," ";
3055 [129]L[178]1[164]16
3060 C$[178]B$(I[170]L[171]1)
3062 [139]A$[179][177]"DIM"[167]3070
3064 [139][198](C$)[177]30[175][198](C$)[179]90[167]H$[178]" "[170]C$:[137]4030
3066 H$[178]" *":[137]4030
3070 [139]A$[178]"INPUT"[167]3079
3071 H$[178][202]([196]([198](C$)),2)
3073 [139][195](H$)[179]3[167]H$[178]H$[170]" ":[137]3073
3077 [137]4030
3079 N[178][198](C$):H%[178]N[173]16:L%[178]N[171]16[172]H%
3080 H%[178]H%[170]48:L%[178]L%[170]48
3090 H%[178]H%[171]7[172](H%[177]57):L%[178]L%[171]7[172](L%[177]57)
4000 H$[178][199](H%)[170][199](L%)
4030 [139]A$[178]"INPUT"[176]A$[178]"DIM"[167] [152]4,H$;" ";
4031 [139]A$[178]"READ"[167][152]4,H$;" ";
4040 [130] L
4045 [152]4," "
4048 [130]I
4050 [152]4:[152]4:[160]4:[137]20
5000 [153]"LOAD COMPARE BUFFER WITH DISK WAITSTOP":[153]:[153]
5210 [133]"TRACK (1-35)";TC
5222 [139]TC[177]35[176]TC[179]1[167][153]"ON";:[137]5210
5223 [139]TC[177]30[167]SM[178]16:[137]5227
5224 [139]TC[177]24[167]SM[178]17:[137]5227
5225 [139]TC[177]17[167]SM[178]18:[137]5227
5226 SM[178]20
5227 [153]"SECTOR (0-";SM;"CMD)";:[133] SC
5228 [139]SC[177]SM[176]SC[179]0[167][153]"ON";:[137]5227
5230 [159]15,8,15,"I0":[159]2,8,2,"#"
5240 [152]15,"U1:"2;0;TC;SC
5245 [152]15,"B-P:2,0"
5270 [129]I[178]0[164]255:[161]#2,A$:D$(I)[178][200]((A$[170]N$),1):[130]
5280 [160]2:[160]15
5300 [143] NOW COMPARE THE TWO
5310 [153]: EC[178]0
5320 [129]I[178]0[164]255
5330 [139]B$(I)[179][177]D$(I)[167][153]" #";I,"BUF:";[198](B$(I)),"DSK:";[198](D$(I)):EC[178]EC[170]1
5335 [161]A$:[139]A$[178]""[167]5340
5336 [161]A$:[139]A$[178]""[167]5336
5340 [130]
5350 [139] EC[178]0[167][153]:[153]"PERFECT MATCH"
5360 [139] EC[177]0[167][153]:[153]" ";EC;"MISMATCHES"
5370 [153]:[153]" HIT A KEY TO CONTINUE"
5380 [161]A$:[139]A$[178]""[167]5380
5390 [137] 20
6000 [153]"LOAD CHECK DISK STATUS WAITSTOP"
6020 [153]:[153]:[153]:[159]15,8,15:[132]15,AA,AA$,BB,CC
6030 [160]15:[153]AA,AA$,BB,CC
6060 [153]:[153]" HIT A KEY TO CONTINUE"
6070 [161]A$:[139]A$[178]""[167]6070
6080 [137]20
20000 [143] 75 BASIC KEY WORDS
20010 [131] END,FOR,NEXT,DATA,INPUT#,INPUT,DIM,READ,LET,GOTO,RUN,IF,RESTORE,GOSUB
20020 [131] RETURN,REM,STOP,ON,WAIT,LOAD,SAVE,VERIFY,DEF,POKE,PRINT#,PRINT,CONT
20030 [131] LIST,CLR,CMD,SYS,OPEN,CLOSE,GET,NEW,TAB(,TO,FN,SPC(,THEN,NOT,STEP
20040 [131] +,-,*,/,^,AND,OR,>,=,<,SGN,INT,ABS,USR,FRE,POS,SQR,RND,LOG,EXP,COS
20050 [131] SIN,TAN,ATN,PEEK,LEN,STR$,VAL,ASC,CHR$,LEFT$,RIGHT$,MID$